{"componentChunkName":"component---src-templates-post-tsx","path":"/time-complexity/","result":{"data":{"markdownRemark":{"html":"<ul>\n<li>시간 복잡성이란?</li>\n<li>O 표기법</li>\n</ul>\n<hr>\n<h2 id=\"시간-복잡성이란\" style=\"position:relative;\"><a href=\"#%EC%8B%9C%EA%B0%84-%EB%B3%B5%EC%9E%A1%EC%84%B1%EC%9D%B4%EB%9E%80\" aria-label=\"시간 복잡성이란 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>시간 복잡성이란?</h2>\n<p>계산의 복잡성,\n계산이 복잡해지는 만큼 처리하는 스텝의 개수가 늘어나므로 <code class=\"language-text\">실행 시간이 오래 걸린다</code>는 뜻이다.</p>\n<ul>\n<li>스텝 : CPU가 실행하는 명령</li>\n</ul>\n<hr>\n<h2 id=\"o-표기법\" style=\"position:relative;\"><a href=\"#o-%ED%91%9C%EA%B8%B0%EB%B2%95\" aria-label=\"o 표기법 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>O 표기법</h2>\n<p>알고리즘의 <code class=\"language-text\">계산량이 얼마나</code> 될지 대략적으로 표현한 지표.<br>\n구체적인 실행 시간이나 명령의 개수는 알려주지 않는다.</p>\n<p>같은 프로그램을 실행해도 <code class=\"language-text\">컴퓨터의 처리 성능</code>에 따라 <code class=\"language-text\">실행 시간이 달라</code>지기 때문에,\n입력된 데이터 n의 크기에 따라 시간 계산량이 <code class=\"language-text\">어느 정도의 비율로 늘어나는지</code>를 O(n 식)의 형태로 표현하는 것이다.</p>\n<p>O(n) : 입력한 데이터의 크기(개수나 자릿수 등)을 n이라고 했을 때 알고리즘을 최대 n번 실행하면 처리가 완료된다는 뜻이다.(반드시 n번만에 완료된다는 것이 아니라 알고리즘의 최대 실행 횟수가 n번이라는 뜻이다.)</p>\n<h3 id=\"1-o-표기법의-식\" style=\"position:relative;\"><a href=\"#1-o-%ED%91%9C%EA%B8%B0%EB%B2%95%EC%9D%98-%EC%8B%9D\" aria-label=\"1 o 표기법의 식 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>1. O 표기법의 식</h3>\n<p>차수가 가장 큰 항만 남기고 계수는 1로 한다.</p>\n<div class=\"gatsby-highlight\" data-language=\"text\"><pre class=\"language-text\"><code class=\"language-text\">O(3) → O(1)\nO(n-1) → O(n)\nO(4n²+3n) → O(n²)\nO(n³+7n²+12) → O(n³)\nO(2n³+3m²) → O(n³+m²)</code></pre></div>\n<h3 id=\"2-괄호-안에-자주-사용되는-식과-계산량의-대소-관계\" style=\"position:relative;\"><a href=\"#2-%EA%B4%84%ED%98%B8-%EC%95%88%EC%97%90-%EC%9E%90%EC%A3%BC-%EC%82%AC%EC%9A%A9%EB%90%98%EB%8A%94-%EC%8B%9D%EA%B3%BC-%EA%B3%84%EC%82%B0%EB%9F%89%EC%9D%98-%EB%8C%80%EC%86%8C-%EA%B4%80%EA%B3%84\" aria-label=\"2 괄호 안에 자주 사용되는 식과 계산량의 대소 관계 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>2. 괄호 안에 자주 사용되는 식과 계산량의 대소 관계</h3>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 590px; \"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/ac02399901739724c65dc49ae251509a/f0685/priority.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 11.486486486486488%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAACCAYAAABYBvyLAAAACXBIWXMAAA7DAAAOwwHHb6hkAAAAXElEQVQI103NWQrAIAwEUO9/UcUlouKKMCUDLf0IzOQFYuac0Ln3ovfOfM5h/9sYg773/vztmltrWGvBpJQQYyR472GtRc6ZKCIIITDrjZr2Wit3zjmUUvhUTfcPFJmaDD7gFNQAAAAASUVORK5CYII='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"O 표기법\"\n        title=\"O 표기법\"\n        src=\"/static/ac02399901739724c65dc49ae251509a/fcda8/priority.png\"\n        srcset=\"/static/ac02399901739724c65dc49ae251509a/12f09/priority.png 148w,\n/static/ac02399901739724c65dc49ae251509a/e4a3f/priority.png 295w,\n/static/ac02399901739724c65dc49ae251509a/fcda8/priority.png 590w,\n/static/ac02399901739724c65dc49ae251509a/f0685/priority.png 835w\"\n        sizes=\"(max-width: 590px) 100vw, 590px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n      />\n  </a>\n    </span></p>\n<h3 id=\"3-오더-수와-시간-계산량\" style=\"position:relative;\"><a href=\"#3-%EC%98%A4%EB%8D%94-%EC%88%98%EC%99%80-%EC%8B%9C%EA%B0%84-%EA%B3%84%EC%82%B0%EB%9F%89\" aria-label=\"3 오더 수와 시간 계산량 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>3. 오더 수와 시간 계산량</h3>\n<p>시간 계산량의 오더에서<br>\nO(n), O(n²), O(n³)과 같은 오더를 가르켜 <code class=\"language-text\">다항 시간 알고리즘</code>이라 부르며<br>\nO(n!), O(2ⁿ)과 같은 오더는 <code class=\"language-text\">지수 시간 알고리즘</code>이라 부른다.</p>\n<p>다항 시간 알고리즘으로는 어느 정도 실용적인 프로그램을 만들어 낼 수 있다.<br>\n하지만 지수 시간 알고리즘은 n값이 증가함에 따라 계산량도 급격히 늘어나기 때문에 현실적인 시간 내에 문제를 해결하지 못할 우려가 있다.</p>\n<hr>\n<h4 id=\"reference\" style=\"position:relative;\"><a href=\"#reference\" aria-label=\"reference permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Reference</h4>\n<ul>\n<li><a href=\"https://www.gilbut.co.kr/book/view?bookcode=BN002328\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">모두의 알고리즘 with 자바스크립트</a></li>\n</ul>","excerpt":"시간 복잡성이란? O 표기법 시간 복잡성이란? 계산의 복잡성,\n계산이 복잡해지는 만큼 처리하는 스텝의 개수가 늘어나므로 는 뜻이다. 스텝 : CPU가 실행하는 명령 O 표기법 알고리즘의  될지 대략적으로 표현한 지표. 구체적인 실행 시간이나 명령의 …","tableOfContents":"<ul>\n<li><a href=\"/time-complexity/#%EC%8B%9C%EA%B0%84-%EB%B3%B5%EC%9E%A1%EC%84%B1%EC%9D%B4%EB%9E%80\">시간 복잡성이란?</a></li>\n<li>\n<p><a href=\"/time-complexity/#o-%ED%91%9C%EA%B8%B0%EB%B2%95\">O 표기법</a></p>\n<ul>\n<li><a href=\"/time-complexity/#1-o-%ED%91%9C%EA%B8%B0%EB%B2%95%EC%9D%98-%EC%8B%9D\">1. O 표기법의 식</a></li>\n<li><a href=\"/time-complexity/#2-%EA%B4%84%ED%98%B8-%EC%95%88%EC%97%90-%EC%9E%90%EC%A3%BC-%EC%82%AC%EC%9A%A9%EB%90%98%EB%8A%94-%EC%8B%9D%EA%B3%BC-%EA%B3%84%EC%82%B0%EB%9F%89%EC%9D%98-%EB%8C%80%EC%86%8C-%EA%B4%80%EA%B3%84\">2. 괄호 안에 자주 사용되는 식과 계산량의 대소 관계</a></li>\n<li><a href=\"/time-complexity/#3-%EC%98%A4%EB%8D%94-%EC%88%98%EC%99%80-%EC%8B%9C%EA%B0%84-%EA%B3%84%EC%82%B0%EB%9F%89\">3. 오더 수와 시간 계산량</a></li>\n</ul>\n</li>\n</ul>","fields":{"slug":"/time-complexity/"},"frontmatter":{"title":"시간 복잡성과 O 표기법","date":"Jul 12, 2021","tags":["알고리즘"],"keywords":["시간복잡성","O표기법","알고리즘"],"update":"Jan 01, 0001"}}},"pageContext":{"slug":"/time-complexity/","series":[],"lastmod":"2021-07-12"}},"staticQueryHashes":["2027115977","694178885"]}